#include<iostream>
#include<string>
#include<vector>
using namespace std;

class Solution {
public:
    string convert(string s, int numRows) {
        if (numRows == 1)return s;
        string ans;
        vector<string> vstr;
        vstr.resize(numRows);
        int flag = 1;
        int i = 0;
        for (int j = 0; j < s.size(); j++) {
            if (i >= 0 && i < numRows) {
                vstr[i].push_back(s[j]);
                i += flag;
            }
            else if (i < 0) {
                i = 1;
                flag = 1;
                --j;
            }
            else if (i >= numRows) {
                i = numRows - 2;
                flag = -1;
                --j;
            }
        }
        for (int k = 0; k < vstr.size(); k++) {
            ans += vstr[k];
        }
        return ans;
    }
};

int main()
{
    string s1("PAYPALISHIRING");

    string ans = Solution().convert(s1, 4);

    cout << ans << endl;
    return 0;
}